- job:
    name: swift-tox-base
    parent: openstack-tox-py310
    nodeset: ubuntu-jammy
    description: |
      Base job for swift-tox jobs.

      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    timeout: 5400
    vars:
      tox_environment:
        TMPDIR: '{{ ansible_env.HOME }}/xfstmp'

- job:
    name: swift-tox-py27
    parent: swift-tox-base
    nodeset: ubuntu-bionic
    description: |
      Run unit-tests for swift under cPython version 2.7.

      Uses tox with the ``py27`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: py27
      bindep_profile: test py27
      python_version: 2.7
    post-run: tools/playbooks/common/cover-post.yaml

- job:
    name: swift-tox-py27-centos-7
    parent: openstack-tox-py27
    nodeset: centos-7
    vars:
      tox_environment:
        TMPDIR: '{{ ansible_env.HOME }}/xfstmp'

- job:
    name: swift-tox-py36
    parent: swift-tox-base
    nodeset: ubuntu-bionic
    description: |
      Run unit-tests for swift under cPython version 3.6.

      Uses tox with the ``py36`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: py36
      bindep_profile: test py36
      python_version: 3.6
    post-run: tools/playbooks/common/cover-post.yaml

- job:
    name: swift-tox-py36-centos-8-stream
    parent: swift-tox-py36
    nodeset: centos-8-stream

- job:
    name: swift-tox-py37
    parent: swift-tox-base
    nodeset: ubuntu-bionic
    description: |
      Run unit-tests for swift under cPython version 3.7.

      Uses tox with the ``py37`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: py37
      bindep_profile: test py37
      python_version: 3.7
    post-run: tools/playbooks/common/cover-post.yaml

- job:
    name: swift-tox-py38
    parent: swift-tox-base
    nodeset: ubuntu-focal
    description: |
      Run unit-tests for swift under cPython version 3.8.

      Uses tox with the ``py38`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: py38
      bindep_profile: test py38
      python_version: 3.8
    post-run: tools/playbooks/common/cover-post.yaml

- job:
    name: swift-tox-py38-arm64
    parent: swift-tox-py38
    nodeset: ubuntu-focal-arm64
    description: |
      Run unit tests for an OpenStack Python project under cPython
      version 3.8 on top of arm64 architecture.

- job:
    name: swift-tox-py39-arm64
    parent: swift-tox-py39
    nodeset: ubuntu-focal-arm64
    description: |
      Run unit tests for an OpenStack Python project under cPython
      version 3.9 on top of arm64 architecture.

- job:
    name: swift-tox-py39
    parent: swift-tox-base
    nodeset: ubuntu-focal
    description: |
      Run unit-tests for swift under cPython version 3.9.

      Uses tox with the ``py39`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: py39
      bindep_profile: test py39
      python_version: 3.9
    post-run: tools/playbooks/common/cover-post.yaml

- job:
    name: swift-tox-py310
    parent: swift-tox-base
    nodeset: ubuntu-jammy
    description: |
      Run unit-tests for swift under cPython version 3.10.

      Uses tox with the ``py310`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: py310
      bindep_profile: test py310
      python_version: '3.10'
    post-run: tools/playbooks/common/cover-post.yaml

- job:
    name: swift-tox-py311
    parent: swift-tox-base
    nodeset: ubuntu-jammy
    description: |
      Run unit-tests for swift under cPython version 3.11.

      Uses tox with the ``py311`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: py311
      bindep_profile: test py311
      python_version: '3.11'

- job:
    name: swift-tox-func-py27
    parent: swift-tox-base
    nodeset: ubuntu-bionic
    description: |
      Run functional tests for swift under cPython version 2.7.

      Uses tox with the ``func`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func
      bindep_profile: test py27
      python_version: 2.7

- job:
    name: swift-tox-func-py38
    parent: swift-tox-base
    nodeset: ubuntu-focal
    description: |
      Run functional tests for swift under cPython version 3.8.

      Uses tox with the ``func-py3`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func-py3
      bindep_profile: test py38
      python_version: 3.8

- job:
    name: swift-tox-func-py39-centos-9-stream
    parent: swift-tox-func-py38
    nodeset: centos-9-stream
    vars:
      bindep_profile: test py39
      python_version: 3.9

- job:
    name: swift-tox-func-encryption-py39-centos-9-stream
    parent: swift-tox-func-py39-centos-9-stream
    vars:
      tox_envlist: func-encryption-py3

- job:
    name: swift-tox-func-ec-py39-centos-9-stream
    parent: swift-tox-func-py39-centos-9-stream
    vars:
      tox_envlist: func-ec-py3

- job:
    name: swift-tox-func-encryption-py38
    parent: swift-tox-func-py38
    description: |
      Run functional tests for swift under cPython version 3.8.

      Uses tox with the ``func-encryption-py3`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func-encryption-py3

- job:
    name: swift-tox-func-encryption-py38-arm64
    parent: swift-tox-func-encryption-py38
    nodeset: ubuntu-focal-arm64
    description: |
      Run functional tests for swift under cPython version 3.8
      on top of arm64 architecture.

      Uses tox with the ``func-encryption-py3`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.

- job:
    name: swift-tox-func-py38-arm64
    parent: swift-tox-func-py38
    nodeset: ubuntu-focal-arm64
    description: |
      Run functional tests for swift under cPython version 3.8
      on top of arm64 architecture.

      Uses tox with the ``func-py3`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.

- job:
    name: swift-tox-func-ec-py38
    parent: swift-tox-func-py38
    description: |
      Run functional tests for swift under cPython version 3.8.

      Uses tox with the ``func-ec-py3`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func-ec-py3

- job:
    name: swift-tox-func-py27-centos-7
    parent: swift-tox-py27-centos-7
    vars:
      tox_envlist: func

- job:
    name: swift-tox-func-encryption-py27
    parent: swift-tox-func-py27
    description: |
      Run functional tests for swift under cPython version 2.7.

      Uses tox with the ``func-encryption`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func-encryption

- job:
    name: swift-tox-func-encryption-py27-centos-7
    parent: swift-tox-func-py27-centos-7
    vars:
      tox_envlist: func-encryption

- job:
    name: swift-tox-func-ec-py27
    parent: swift-tox-func-py27
    description: |
      Run functional tests for swift under cPython version 2.7.

      Uses tox with the ``func-ec`` environment.
      It sets TMPDIR to an XFS mount point created via
      tools/test-setup.sh.
    vars:
      tox_envlist: func-ec

- job:
    name: swift-tox-func-ec-py27-centos-7
    parent: swift-tox-func-py27-centos-7
    vars:
      tox_envlist: func-ec

- job:
    name: swift-dsvm-functional
    parent: devstack-minimal
    description: |
      Setup a Swift/Keystone environment and run Swift's func tests.
    required-projects:
      - opendev.org/openstack/requirements
      - opendev.org/openstack/swift
      - opendev.org/openstack/keystone
    timeout: 5400
    vars:
      tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
      # This tox env get run twice; once for Keystone and once for tempauth
      tox_envlist: func-py3
      devstack_localrc:
        SWIFT_HASH: changeme
        # We don't need multiple replicas to run purely functional tests.
        # In fact, devstack special cases some things when there's only
        # one replica.
        SWIFT_REPLICAS: 1
        # One replica => no need for replicators, etc.
        SWIFT_START_ALL_SERVICES: False
      devstack_services:
        keystone: true
        swift: true
        s3api: true
      zuul_work_dir: src/opendev.org/openstack/swift
    pre-run: tools/playbooks/dsvm/pre.yaml
    run: tools/playbooks/dsvm/run.yaml
    post-run: tools/playbooks/dsvm/post.yaml

- job:
    name: swift-dsvm-functional-ipv6
    parent: swift-dsvm-functional
    vars:
      devstack_localrc:
        SERVICE_IP_VERSION: 6
        SERVICE_HOST: ""

- job:
    name: swift-tox-func-s3api-ceph-s3tests-tempauth
    parent: unittests
    voting: false
    nodeset: centos-8-stream
    description: |
      Setup a SAIO dev environment and run ceph-s3tests
    timeout: 5400
    vars:
      s3_acl: yes
      bindep_profile: test py36
    pre-run:
      - tools/playbooks/common/install_dependencies.yaml
      - tools/playbooks/saio_single_node_setup/setup_saio.yaml
      - tools/playbooks/saio_single_node_setup/add_s3api.yaml
      - tools/playbooks/saio_single_node_setup/make_rings.yaml
      - tools/playbooks/common/restart_swift.yaml
    run: tools/playbooks/ceph-s3tests/run.yaml
    post-run:
      - tools/playbooks/probetests/post.yaml
      - tools/playbooks/ceph-s3tests/post.yaml

- job:
    name: swift-tox-func-s3api-tests-tempauth
    parent: unittests
    nodeset: centos-8-stream
    description: |
      Setup a SAIO dev environment and run our s3api test suite
    timeout: 1800
    vars:
      s3_acl: yes
      bindep_profile: test py36
    pre-run:
      - tools/playbooks/common/install_dependencies.yaml
      - tools/playbooks/saio_single_node_setup/setup_saio.yaml
      - tools/playbooks/saio_single_node_setup/add_s3api.yaml
      - tools/playbooks/saio_single_node_setup/make_rings.yaml
      - tools/playbooks/common/restart_swift.yaml
    run: tools/playbooks/s3api-tests/run.yaml
    post-run:
      - tools/playbooks/probetests/post.yaml

- job:
    name: swift-probetests-centos-7
    parent: swift-probetests-centos-8-stream
    nodeset: centos-7
    description: |
      Setup a SAIO dev environment and run Swift's probe tests
      under Python 2.
    vars:
      bindep_profile: test py27
      ensure_pip_from_packages: False
      ensure_pip_from_packages_with_python2: False
      ensure_pip_from_upstream: True
      ensure_pip_from_upstream_interpreters:
        - python2
      ensure_pip_from_upstream_url: "https://bootstrap.pypa.io/pip/2.7/get-pip.py"

- job:
    name: swift-probetests-centos-8-stream
    parent: unittests
    nodeset: centos-8-stream
    description: |
      Setup a SAIO dev environment and run Swift's probe tests
      under Python 3.
    timeout: 7200
    vars:
      s3_acl: no
      bindep_profile: test py36
    pre-run:
      - tools/playbooks/common/install_dependencies.yaml
      - tools/playbooks/saio_single_node_setup/setup_saio.yaml
      - tools/playbooks/saio_single_node_setup/make_rings.yaml
      - tools/playbooks/saio_single_node_setup/add_s3api.yaml
    run: tools/playbooks/probetests/run.yaml
    post-run: tools/playbooks/probetests/post.yaml

- job:
    name: swift-probetests-centos-8-stream-arm64
    parent: swift-probetests-centos-8-stream
    nodeset:
      nodes:
        - name: swift-centos-8-stream-arm64
          label: centos-8-stream-arm64
    description: |
      Setup a SAIO dev environment and run Swift's probe tests
      under Python 3 on top of arm64 architecture.
    timeout: 10800

- job:
    name: swift-func-cors
    parent: swift-probetests-centos-8-stream
    description: |
      Setup a SAIO dev environment and run Swift's CORS functional tests
    timeout: 1200
    pre-run:
      - tools/playbooks/cors/install_selenium.yaml
    run: tools/playbooks/cors/run.yaml
    post-run: tools/playbooks/cors/post.yaml

- nodeset:
    name: swift-five-nodes-py3
    nodes:
      - name: test-runner1
        label: centos-8-stream
      - name: proxy1
        label: centos-8-stream
      - name: account1
        label: centos-8-stream
      - name: container1
        label: centos-8-stream
      - name: object1
        label: centos-8-stream
    groups:
      - name: test-runner
        nodes:
          - test-runner1
      - name: swift-cluster
        nodes:
          - proxy1
          - account1
          - container1
          - object1
      - name: proxy
        nodes:
          - proxy1
      - name: account
        nodes:
          - account1
      - name: container
        nodes:
          - container1
      - name: object
        nodes:
          - object1
      - name: storage
        nodes:
          - account1
          - container1
          - object1

- job:
    name: swift-multinode-rolling-upgrade
    parent: multinode
    nodeset: swift-five-nodes-py3
    description: |
      Build a 4 node swift cluster and run functional tests
    timeout: 5400
    vars:
      bindep_profile: test py36
    pre-run:
      - tools/playbooks/multinode_setup/pre.yaml
      - tools/playbooks/common/install_dependencies.yaml
      - tools/playbooks/multinode_setup/configure_loopback.yaml
      - tools/playbooks/multinode_setup/common_config.yaml
      - tools/playbooks/multinode_setup/make_rings.yaml
    run: tools/playbooks/multinode_setup/run.yaml
    post-run: tools/playbooks/probetests/post.yaml

- job:
    name: swift-multinode-rolling-upgrade-victoria
    parent: swift-multinode-rolling-upgrade
    vars:
      previous_swift_version: origin/stable/victoria

- job:
    name: swift-multinode-rolling-upgrade-wallaby
    parent: swift-multinode-rolling-upgrade
    vars:
      previous_swift_version: origin/stable/wallaby

- job:
    name: swift-multinode-rolling-upgrade-xena
    parent: swift-multinode-rolling-upgrade
    vars:
      previous_swift_version: origin/stable/xena

- job:
    name: swift-multinode-rolling-upgrade-yoga
    parent: swift-multinode-rolling-upgrade
    vars:
      previous_swift_version: origin/unmaintained/yoga

- job:
    name: swift-multinode-rolling-upgrade-zed
    parent: swift-multinode-rolling-upgrade
    vars:
      previous_swift_version: origin/stable/zed

- job:
    name: swift-multinode-rolling-upgrade-antelope
    parent: swift-multinode-rolling-upgrade
    vars:
      previous_swift_version: origin/stable/2023.1

- job:
    name: swift-multinode-rolling-upgrade-bobcat
    parent: swift-multinode-rolling-upgrade
    vars:
      previous_swift_version: origin/stable/2023.2

- job:
    name: swift-multinode-rolling-upgrade-master
    parent: swift-multinode-rolling-upgrade
    vars:
      previous_swift_version: origin/master

- job:
    name: swift-tox-lower-constraints
    parent: openstack-tox-lower-constraints
    # This seems defensible for a l-c job
    nodeset: ubuntu-jammy
    vars:
      bindep_profile: test py27
      python_version: 2.7
      tox_environment:
        TMPDIR: '{{ ansible_env.HOME }}/xfstmp'

# Image building jobs
- secret:
    name: swift-dockerhub
    data:
      username: screamingfrenzy
      password: !encrypted/pkcs1-oaep
        - ruMizg1iVvKm4ABLQ8GshZMwt3EzxOyjPZsInL20+ZS+TQxhEwRbLFGzSxnrChIOdioyl
          7TMW1PxQeJ5T/mPIsV7TBsSsnIMKYRcDSbKjnC0hjILpKfQXLFw4/rV/d3jeB6oLDSTW1
          fIt4NmJqhsjlvst+VwT1JnFHLdrRaGMWYkjRU8rEmH82jDM7Wk7J+selykvTrlRQ7RpQR
          6huzniL6PJPOZ7I5VsQcCmEWYKwd/u9Ifhe50yjgxmKR7Fi+wl0nBSOzt38f9ZEXTB6So
          /ks0+RX2sTlgulNgJnnR8FG3p2AHxTJ75fcBnY1KkYlG0+KsdRTzNjxNXs2/Ao0pyJJTs
          JWniEHWVAq6T5agwD1SsmWAzFctBjGKDstxmTyHaSNNN5c6yoVZewRBrFDfYXMJUikyS+
          52bel/uihhiq60MnUCzKCiBg/TM1uonwRKA2KkDXWRh80oxBMIxw5nVZCMaHFpx7NW/ls
          k6aI8jio+/N0cLZlglWqGOsE3EC08Ddd+cqe668/LQVY97UgMjIu6aZRwX9Iwa2NXNDRE
          zPKQ3UDWYFgl8Za90PmrRD4qYuN/1lqCrLKp5cSJbche+EqdrGolCj701zUWcCdwjHMwz
          YA5zG1SbWFyC9BidZYTwMNbo/RRz4TtFmW35A4CRE5HYB5Uh5ccpGlBvI9Yv8A=

- job:
    name: swift-build-image
    parent: opendev-build-docker-image
    voting: false
    description: Build SAIO docker images.
    vars: &swift_image_vars
      docker_images:
        - context: .
          repository: openstackswift/saio

- job:
    name: swift-upload-image
    parent: opendev-upload-docker-image
    voting: false
    description: Build SAIO docker images and upload to Docker Hub.
    secrets:
      name: docker_credentials
      secret: swift-dockerhub
      pass-to-parent: true
    vars: *swift_image_vars

- job:
    name: swift-promote-image
    parent: opendev-promote-docker-image
    voting: false
    description: Promote previously uploaded Docker images.
    secrets:
      name: docker_credentials
      secret: swift-dockerhub
      pass-to-parent: true
    vars: *swift_image_vars

- job:
    name: swift-build-image-py3
    parent: opendev-build-docker-image
    voting: false
    description: Build py3 SAIO docker images.
    vars: &swift_image_vars_py3
      docker_images:
        - context: .
          dockerfile: Dockerfile-py3
          repository: openstackswift/saio
          tags:
           - py3

- job:
    name: swift-upload-image-py3
    parent: opendev-upload-docker-image
    voting: false
    description: Build py3 SAIO docker images and upload to Docker Hub.
    secrets:
      name: docker_credentials
      secret: swift-dockerhub
      pass-to-parent: true
    vars: *swift_image_vars_py3

- job:
    name: swift-promote-image-py3
    parent: opendev-promote-docker-image
    voting: false
    description: Promote previously uploaded Docker images.
    secrets:
      name: docker_credentials
      secret: swift-dockerhub
      pass-to-parent: true
    vars: *swift_image_vars_py3

- job:
    name: swift-tox-func-py39-centos-9-stream-fips
    parent: swift-tox-func-py39-centos-9-stream
    voting: false
    description: |
      Functional testing on a FIPS enabled Centos 9 system
    vars:
      nslookup_target: 'opendev.org'
      enable_fips: true

- job:
    name: swift-tox-func-encryption-py39-centos-9-stream-fips
    parent: swift-tox-func-encryption-py39-centos-9-stream
    voting: false
    description: |
      Functional encryption testing on a FIPS enabled
      Centos 9 system
    vars:
      nslookup_target: 'opendev.org'
      enable_fips: true

- job:
    name: swift-tox-func-ec-py39-centos-9-stream-fips
    parent: swift-tox-func-ec-py39-centos-9-stream
    voting: false
    description: |
      Functional EC testing on a FIPS enabled Centos 9 system
    vars:
      nslookup_target: 'opendev.org'
      enable_fips: true

- project-template:
   name: swift-jobs-arm64
   description: |
     Runs tests for an OpenStack Python project under the CPython
     version 3 releases designated for testing on top of ARM64 architecture.
   check-arm64:
     jobs:
       - swift-tox-py38-arm64
       - swift-tox-py39-arm64
       - swift-tox-func-encryption-py38-arm64
       - swift-tox-func-py38-arm64

- project:
    vars:
      ensure_tox_version: '<4'
    templates:
      - publish-openstack-docs-pti
      - periodic-stable-jobs
      - check-requirements
      - release-notes-jobs-python3
      - integrated-gate-object-storage
      - swift-jobs-arm64
    check:
      jobs:
        - swift-tox-func-py39-centos-9-stream-fips:
            irrelevant-files: &functest-irrelevant-files
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(cors|probe|s3api)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
        - swift-tox-func-encryption-py39-centos-9-stream-fips:
            irrelevant-files: *functest-irrelevant-files
        - swift-tox-func-ec-py39-centos-9-stream-fips:
            irrelevant-files: *functest-irrelevant-files
        - swift-build-image:
            irrelevant-files: &docker-irrelevant-files
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(functional|probe)/.*$
        - swift-build-image-py3:
            irrelevant-files: *docker-irrelevant-files

        # Unit tests
        - swift-tox-py27:
            irrelevant-files: &unittest-irrelevant-files
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/(cors|functional|probe|s3api)/.*$
        - swift-tox-py36:
            irrelevant-files: *unittest-irrelevant-files
        - swift-tox-py39:
            irrelevant-files: *unittest-irrelevant-files
        - swift-tox-py310:
            irrelevant-files: *unittest-irrelevant-files
        - swift-tox-py311:
            irrelevant-files: *unittest-irrelevant-files

        # Functional tests
        - swift-tox-func-py27:
            irrelevant-files: *functest-irrelevant-files
        - swift-tox-func-encryption-py27:
            irrelevant-files: *functest-irrelevant-files
        - swift-tox-func-ec-py27:
            irrelevant-files: *functest-irrelevant-files

        # py3 functional tests
        - swift-tox-func-py38:
            irrelevant-files: *functest-irrelevant-files
        - swift-tox-func-encryption-py38:
            irrelevant-files: *functest-irrelevant-files
        - swift-tox-func-ec-py38:
            irrelevant-files: *functest-irrelevant-files

        # Other tests
        - swift-func-cors:
            irrelevant-files:
              - ^(api-ref|releasenotes)/.*$
              # Keep doc/saio -- we use those sample configs in the saio playbooks
              - ^doc/(requirements.txt|(manpages|s3api|source)/.*)$
              - ^test/(unit|functional|probe|s3api)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
        - swift-tox-func-s3api-ceph-s3tests-tempauth:
            irrelevant-files:
              - ^(api-ref|releasenotes)/.*$
              # Keep doc/saio -- we use those sample configs in the saio playbooks
              # Also keep doc/s3api -- it holds known failures for these tests
              - ^doc/(requirements.txt|(manpages|source)/.*)$
              - ^test/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
        - swift-tox-func-s3api-tests-tempauth:
            irrelevant-files:
              - ^(api-ref|releasenotes)/.*$
              # Keep doc/saio -- we use those sample configs in the saio playbooks
              - ^doc/(requirements.txt|(manpages|s3api|source)/.*)$
              - ^test/(cors|unit|functional|probe)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
        - swift-probetests-centos-7:
            irrelevant-files: &probetest-irrelevant-files
              - ^(api-ref|releasenotes)/.*$
              # Keep doc/saio -- we use those sample configs in the saio playbooks
              - ^doc/(requirements.txt|(manpages|s3api|source)/.*)$
              - ^test/(cors|unit|functional|s3api)/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
        - swift-probetests-centos-8-stream:
            irrelevant-files: *probetest-irrelevant-files
        - swift-dsvm-functional:
            irrelevant-files: *functest-irrelevant-files
        - swift-dsvm-functional-ipv6:
            irrelevant-files: *functest-irrelevant-files
        - swift-tox-lower-constraints:
            irrelevant-files: *unittest-irrelevant-files
        - openstack-tox-pep8:
            irrelevant-files: &pep8-irrelevant-files
              - ^(api-ref|etc|examples|releasenotes)/.*$
              # Keep doc/manpages -- we want to syntax check them
              - ^doc/(requirements.txt|(saio|s3api|source)/.*)$
        - swift-multinode-rolling-upgrade:
            irrelevant-files: *functest-irrelevant-files
            voting: false
        - tempest-integrated-object-storage:
            irrelevant-files: &tempest-irrelevant-files
              - ^(api-ref|doc|releasenotes)/.*$
              - ^test/.*$
              - ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
        - tempest-ipv6-only:
            irrelevant-files: *tempest-irrelevant-files
        - openstacksdk-functional-devstack:
            irrelevant-files: *tempest-irrelevant-files
        - grenade:
            irrelevant-files: *tempest-irrelevant-files
        - grenade-skip-level:
            irrelevant-files: *tempest-irrelevant-files
    gate:
      jobs:
        # For gate jobs, err towards running more jobs (so, generally avoid
        # using irrelevant-files). Exceptions should mainly be made for
        # long-running jobs, like probetests or (once they move to
        # in-tree definitions) dsvm jobs.
        - swift-upload-image:
            irrelevant-files: *docker-irrelevant-files
        - swift-upload-image-py3:
            irrelevant-files: *docker-irrelevant-files
        - swift-tox-py27
        - swift-tox-py36
        - swift-tox-py39
        - swift-tox-py310
        - swift-tox-py311
        - swift-tox-func-py27
        - swift-tox-func-encryption-py27
        - swift-tox-func-ec-py27
        - swift-tox-func-py38
        - swift-tox-func-encryption-py38
        - swift-tox-func-ec-py38
        - swift-func-cors
        - swift-tox-func-s3api-tests-tempauth
        - swift-probetests-centos-7:
            irrelevant-files: *probetest-irrelevant-files
        - swift-probetests-centos-8-stream:
            irrelevant-files: *probetest-irrelevant-files
        - swift-dsvm-functional:
            irrelevant-files: *functest-irrelevant-files
        - swift-dsvm-functional-ipv6:
            irrelevant-files: *functest-irrelevant-files
        - swift-tox-lower-constraints:
            irrelevant-files: *unittest-irrelevant-files
        - openstack-tox-pep8:
            irrelevant-files: *pep8-irrelevant-files
        - tempest-integrated-object-storage:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-ipv6-only:
            irrelevant-files: *tempest-irrelevant-files
        - openstacksdk-functional-devstack:
            irrelevant-files: *tempest-irrelevant-files
        - grenade:
            irrelevant-files: *tempest-irrelevant-files
        - grenade-skip-level:
            irrelevant-files: *tempest-irrelevant-files
    experimental:
      jobs:
        - swift-tox-py37
        - swift-tox-py38
        - swift-tox-py27-centos-7
        - swift-tox-func-py27-centos-7
        - swift-tox-func-encryption-py27-centos-7
        - swift-tox-func-ec-py27-centos-7
        - swift-tox-py36-centos-8-stream
        - swift-tox-func-py39-centos-9-stream
        - swift-tox-func-encryption-py39-centos-9-stream
        - swift-tox-func-ec-py39-centos-9-stream
        - swift-multinode-rolling-upgrade-train
        - swift-multinode-rolling-upgrade-ussuri
        - swift-multinode-rolling-upgrade-victoria
        - swift-multinode-rolling-upgrade-wallaby
        - swift-multinode-rolling-upgrade-xena
        - swift-multinode-rolling-upgrade-yoga
        - swift-multinode-rolling-upgrade-zed
        - swift-multinode-rolling-upgrade-antelope
        - swift-multinode-rolling-upgrade-bobcat
        - swift-multinode-rolling-upgrade-master:
            branches: master

    post:
      jobs:
        - publish-openstack-python-branch-tarball
    promote:
      jobs:
        - swift-promote-image
        - swift-promote-image-py3
